// 封装项目中各种的接口函数
import request from '@/utils/http'

// 获取分类
// getChannels(id).then(res=> console.log(res))

// 函数：参数 逻辑 返回值

// 登录接口

export function loginAPI ({ mobile, code }) {
  return request({
    url: '/v1_0/authorizations',
    method: 'POST',
    data: {
      mobile,
      code
    }
  })
}

// 获取频道列表

export function getChannels () {
  return request({
    url: '/v1_0/channels'
  })
}

// 获取文章列表

export function getArticleList ({ channelId, timestamp }) {
  return request({
    url: '/v1_0/articles',
    method: 'GET',
    params: {
      channel_id: channelId,
      timestamp
    }
  })
}

// 获取文章详情

export function getArticleDetail (artId) {
  return request({
    url: `/v1_0/articles/${artId}`,
    method: 'GET'
  })
}

// 文章 - 关注作者
export const followedUserAPI = ({ target }) => {
  return request({
    url: '/v1_0/user/followings',
    method: 'POST',
    data: {
      target
    }
  })
}
// 文章 - 取消关注作者
export const unFollowedUserAPI = ({ uid }) => {
  return request({
    // 这uid只是个变量名, 把值拼接在url发给后台(无需指定参数名)
    url: `/v1_0/user/followings/${uid}`,
    method: 'DELETE'
  })
}

// 获取用户信息

export const getUserInfoAPI = () => {
  return request({
    url: '/v1_0/user',
    method: 'GET'
  })
}

// 获取用户简介信息

export const getUser = () => {
  return request({
    url: '/v1_0/user/profile',
    method: 'GET'
  })
}

// 上传头像
// 通常接口  json string  contentType: aplication/json
// 上传接口  FormData  contentType:multipart/form-data
// 注意:axios插件如果检测到传入的data是FormData类型 自动在内部把contentType设置为
// multipart/form-data 我们需要做的就是按照标准传递过来一个类型为FormData的参数

// 如何传递一个类型为FormData?
// 利用原生的FormData  new FormData() => formData
// formData.append('key',file)  key = photo

export const uploadImg = (data) => {
  return request({
    url: '/v1_0/user/photo',
    method: 'PATCH',
    data: data
  })
}

// 更新用户信息
export const updateProfile = (data) => {
  return request({
    url: '/v1_0/user/profile',
    method: 'PATCH',
    data
  })
}

export const suggestListAPI = ({ q }) => {
  return request({
    url: '/v1_0/suggestion',
    params: {
      q: q
    }
  })
}

// 搜索 - 结果列表
export const searchResultListAPI = ({ q, page = 1 }) => {
  return request({
    url: '/v1_0/search',
    params: {
      q,
      page
    }
  })
}
